/*
	File:	physics/Physics.hpp
	Date:	2013-06-09
	Author:	Asteroth
*/


#ifndef __ZEN_PHYSICS__
#define __ZEN_PHYSICS__

#include <vector>
#include <ptr.hpp>
#include <btBulletDynamicsCommon.h>
#include <btBulletCollisionCommon.h>

#include "DebugDrawer.hpp"
#include "PhysicsContext.hpp"

namespace zen {

	namespace physics {


		class Physics {

		public:
			
			static DebugDrawer*			getDefaultDebugDrawer();

			static PPhysicsContext		createPhysicsContext();
			static void					releasePhysicsContext(PPhysicsContext physicsContext);

			
		private:

			static DebugDrawer* defaultDebugDrawer;
			static std::vector<PPhysicsContext> contexts;


		};

	} // namespace physics

} // namespace zen


#endif // __ZEN_PHYSICS__
